#ifndef NICKEL_CORE_LOADER_H_
#define NICKEL_CORE_LOADER_H_

#include <ISmmPlugin.h>

#if defined WIN32 && !defined snprintf
#define snprintf _snprintf
#endif

namespace nickel
{
	namespace core
	{
		class Loader : public ISmmPlugin
		{
		public:
			bool Load(PluginId id, ISmmAPI *ismm, char *error, size_t maxlen, bool late);
			bool Unload(char *error, size_t maxlen);
			bool Pause(char *error, size_t maxlen);
			bool Unpause(char *error, size_t maxlen);
			void AllPluginsLoaded();
			const char *GetAuthor();
			const char *GetName();
			const char *GetDescription();
			const char *GetURL();
			const char *GetLicense();
			const char *GetVersion();
			const char *GetDate();
			const char *GetLogTag();
		};
	
		extern Loader g_Loader;
	
		PLUGIN_GLOBALVARS();
	}
}

#endif // NICKEL_CORE_LOADER_H_
